package com.yanfan.energy.service;


import com.yanfan.energy.domain.BaseDictEntity;
import com.yanfan.energy.domain.SaveMoneyQueryByArea;
import com.yanfan.energy.domain.SaveMoneyStandard;
import com.yanfan.energy.domain.SaveMoneyStandardInfo;

import java.util.List;

/**
 * (SaveMoneyStandard)表服务接口
 *
 * @author makejava
 * @since 2023-05-08 16:48:44
 */
public interface SaveMoneyStandardService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    SaveMoneyStandard queryById(Long id);

    /**
     * 分页查询
     *
     * @param saveMoneyStandard 筛选条件
     * @return 查询结果
     */
    List<SaveMoneyStandard> queryList(SaveMoneyStandard saveMoneyStandard);

    /**
     * 新增数据
     *
     * @param saveMoneyStandard 实例对象
     * @return 实例对象
     */
    SaveMoneyStandard insert(SaveMoneyStandard saveMoneyStandard);

    /**
     * 修改数据
     *
     * @param saveMoneyStandard 实例对象
     * @return 实例对象
     */
    SaveMoneyStandard update(SaveMoneyStandard saveMoneyStandard);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);


    void saveMoneyInit(String startTime, String endTime, int purchaseSign, String groupByStr);


    /**
     * 定时器 每月跑一次
     */
    void saveMoneyTimer(int purchaseSign, String groupByStr);

    /**
     * 省钱标准列表
     *
     * @param saveMoneyStandard
     * @return
     */
    List<SaveMoneyStandard> saveMoneyStandardDeviceList(SaveMoneyStandard saveMoneyStandard);

    SaveMoneyStandardInfo saveMoneyStandardDeviceEdit(SaveMoneyStandardInfo saveMoneyStandard);

    List<SaveMoneyStandard> saveMoneyStandardPurchaseList(SaveMoneyStandard saveMoneyStandard);

    SaveMoneyStandardInfo saveMoneyStandardDeviceDetail(SaveMoneyStandardInfo saveMoneyStandardInfo);

    List<SaveMoneyQueryByArea> saveMoneyQueryByArea(SaveMoneyQueryByArea saveMoneyQueryByArea);

    List<BaseDictEntity> areaList(SaveMoneyQueryByArea saveMoneyQueryByArea);

}
